Cloud gaming is a relatively new cloud service where a user plays a video game that is remotely run on at least one server. The server renders frames of the video game and encodes the rendered frames for transmission over a network to an end user device of the user. The end user device is generally only required to send control inputs, such as those received from the user interacting with the video game, over the network to the server and to decode and display the rendered frames received from the server.
The advantages of cloud gaming include users not having to purchase end user devices capable of rendering complex video game scenes. Less sophisticated end user devices, including lightweight personal computers, set-top boxes, smartphones, and tablets, can be used to play video games run by a cloud service because the rendering is done by the remote server. Additionally, game developers do not have to develop or port their games to run on a large number of different platforms or even worry to a large extent about software piracy because their video game software does not have to leave the remote server it is run on.
However, cloud gaming is not without its challenges. In order to provide a quality experience to the user, cloud gaming typically requires a high-level of graphic quality to be provided to the user with low latency over some maximum amount of downstream bandwidth. Latency is a measure of delay and in cloud gaming can include the total time required to gather and transmit user inputs to the server, to render and encode the relevant frame at the server, to transmit the encoded frame to the end user device, and to decode and display the frame at the end user device. In the case of many games, such as first-person shooter games, a latency of less than 100 milliseconds (ms) per frame is generally desirable. It can be quite challenging to provide a high-level of graphic quality with such low latency over some maximum amount of downstream bandwidth without incurring substantial computational hardware costs at the server.
The embodiments of the present disclosure will be described with reference to the accompanying drawings. The drawing in which an element first appears is typically indicated by the leftmost digit(s) in the corresponding reference number.